<?php   App::uses('CakeTime', 'Utility');
        App::uses('CakeNumber', 'Utility'); ?>

<?php
    // nueva pagina   
    $fpdf->AddPage();   
   
    // IMPORTANTE: Las cadenas con caracteres especiales como se deben decodificar con utf8_decode() 
    // porque la BD y las páginas tienen por default codificación UTF8
    // texto en arial, 12    
    $fpdf->SetFont('Arial','B',9);
    // cabecera
    $fpdf->SetFont('Arial','',9);
    $x = 5; $y = 3; $fpdf->SetXY($x, $y);
    $fpdf->Write(7,utf8_decode($empresa['razon_social']));
    $y += 5; $fpdf->SetXY($x, $y);
    $fpdf->Write(7,'C.U.I.T. Nro.: '.CakeNumber::precision($empresa['cuit'], 0));
    $y += 5; $fpdf->SetXY($x, $y);
    $fpdf->Write(7,utf8_decode($empresa['direccion'].', '.$empresa['localidad'].', '.$empresa['provincia']));
    $y += 5; $fpdf->SetXY($x, $y);
    $fpdf->Write(7,'C.P.: '.$empresa['cod_postal']);
    
    // encabezado pedido
    $y += 7; $fpdf->SetXY($x, $y);   
    $fpdf->Cell(20,7,'Pedido Nro.:',0,0,'L');
    // relleno el número de pedido con ceros a izq
    $fpdf->Cell(0,7,sprintf("%08d",$pedido['Cabecera']['Pedido']['id']),0,0,'R');
    $y += 5; $fpdf->SetXY($x, $y);   
    $fpdf->Write(7,'Fecha: '.CakeTime::format($pedido['Cabecera']['Pedido']['fecha'], '%d/%m/%Y')
                            .'  Hora: '.CakeTime::format($pedido['Cabecera']['Pedido']['fecha'], '%R'));
    $y += 5; $fpdf->SetXY($x, $y);   
    $fpdf->Write(7,'Mesas: '.$pedido['Cabecera']['Pedido']['mesas']);
    $y += 5; $fpdf->SetXY($x, $y);   
    $fpdf->Write(7,utf8_decode('Atendido por: '.$pedido['Cabecera']['User']['nombre']));
    $y += 7; $fpdf->SetXY($x, $y);   
    
    // lista de detalles y agregados
    // cabecera lista
    $fpdf->Cell(60,7,utf8_decode('Descripción'),0,0,'L');    
    $fpdf->Cell(15,7,'Cantidad',0,0,'R');    
    $fpdf->Cell(15,7,'Importe',0,0,'R');    
    // detalles
    
    foreach ($pedido['Detalle'] as $detalle_pedido):         
        if ($detalle_pedido['PedidoDetalle']['cancelado']==0) {
            $y += 5; $fpdf->SetXY($x, $y);   
            $fpdf->Cell(60,7,utf8_decode($detalle_pedido['Producto']['descripcion']),0,0,'L');    
            $fpdf->Cell(15,7,CakeNumber::precision($detalle_pedido['PedidoDetalle']['cantidad'],0),0,0,'R');    
            $fpdf->Cell(15,7,CakeNumber::precision($detalle_pedido['PedidoDetalle']['cantidad'] * $detalle_pedido['PedidoDetalle']['precio'],2),0,0,'R');    
            foreach ($pedido['Agregado'] as $detalle_agregado): 
                if ($detalle_agregado['PedidoAgregado']['pedido_detalle_id'] == $detalle_pedido['PedidoDetalle']['id']) { 
                    $y += 5; $fpdf->SetXY($x, $y);   
                    $fpdf->Cell(60,7,utf8_decode($detalle_agregado['Agregado']['descripcion']),0,0,'L');    
                    $fpdf->Cell(15,7,CakeNumber::precision($detalle_pedido['PedidoDetalle']['cantidad'],0),0,0,'R');    
                    $fpdf->Cell(15,7,CakeNumber::precision($detalle_pedido['PedidoDetalle']['cantidad'] * $detalle_agregado['PedidoAgregado']['precio'],2),0,0,'R');                        
                }
            endforeach;
        }
    endforeach;
    
    // totales
    $y += 7; $fpdf->SetXY($x, $y);       
    $impo_subtotal = $pedido['Cabecera']['Pedido']['impo_total_detalles']+$pedido['Cabecera']['Pedido']['impo_total_agregados'];
    $fpdf->Cell(60,7,'Subtotal',0,0,'L');    
    $fpdf->Cell(15,7,'',0,0,'R');    
    $fpdf->Cell(15,7,CakeNumber::precision($impo_subtotal ,2),0,0,'R');    
    $y += 5; $fpdf->SetXY($x, $y);       
    if ($pedido['Cabecera']['Pedido']['paga_cubierto'] == 1) {
        $impo_cubierto = $pedido['Cabecera']['Pedido']['precio_uni_cubierto'] * $pedido['Cabecera']['Pedido']['cant_clientes'];
    } else {
        $impo_cubierto = 0;
    }
    $fpdf->Cell(60,7,'Cubierto',0,0,'L');    
    $fpdf->Cell(15,7,'',0,0,'R');    
    $fpdf->Cell(15,7,CakeNumber::precision($impo_cubierto ,2),0,0,'R');    
    $y += 5; $fpdf->SetXY($x, $y);       
    
    $impo_total_sin_dto = $impo_subtotal + $impo_cubierto;
    $fpdf->Cell(60,7,'Subtotal c/cubierto',0,0,'L');    
    $fpdf->Cell(15,7,'',0,0,'R');    
    $fpdf->Cell(15,7,CakeNumber::precision($impo_total_sin_dto ,2),0,0,'R');    
    $y += 5; $fpdf->SetXY($x, $y);       

    if (isset($pedido['Cabecera']['Descuento']['porcentaje'])) {
        $impo_dto = round($impo_total_sin_dto * $pedido['Cabecera']['Descuento']['porcentaje'] / 100.0, 2);
    } else {
        $impo_dto = 0;
    }
    $fpdf->Cell(60,7,'Descuento',0,0,'L');    
    $fpdf->Cell(15,7,'',0,0,'R');    
    $fpdf->Cell(15,7,CakeNumber::precision($impo_dto ,2),0,0,'R');    
    $y += 5; $fpdf->SetXY($x, $y);       
    
    $impo_total = $impo_total_sin_dto - $impo_dto;
    $fpdf->Cell(60,7,'TOTAL',0,0,'L');    
    $fpdf->Cell(15,7,'',0,0,'R');    
    $fpdf->Cell(15,7,CakeNumber::precision($impo_total,2),0,0,'R');    
    // leyenda footer
    $y += 7; $fpdf->SetXY($x, $y);       
    $fpdf->Cell(90,7,utf8_decode('Comprobante no válido como factura'),0,0,'C');    
            
    // cierre del documento
    $fpdf->Output();

?>
